<p>We’ve used types such as <code>Int</code> to hold values like 5. But if you wanted to store an <code>age</code> property for users, what would you do if you didn’t know someone’s age?</p>
<p>You might say “well, I’ll store 0”, but then you would get confused between new-born babies and people whose age you don’t know. You could use a special number such as 1000 or -1 to represent “unknown”, both of which are impossible ages, but then would you really remember that number in all the places it’s used?</p>
<p>Swift’s solution is called <em>optionals</em>, and you can make optionals out of any type. An optional integer might have a number like 0 or 40, but it might have no value at all – it might literally be missing, which is <code>nil</code> in Swift.</p>
<p>To make a type optional, add a question mark after it. For example, we can make an optional integer like this:</p>
<pre class="code">
<p></p>
<p><span class="keyword">var</span> age<span class="punctuation">:</span> <span class="builtin">Int</span><span class="operator">?</span> <span class="operator">=</span> <span class="constant">nil</span></p>
<p></p>
</pre>

<p style="height: 0px; margin-bottom: 0px;"></p>
<p>That doesn’t hold any number – it holds nothing. But if we later learn that age, we can use it:</p>
<pre class="code">
<p></p>
<p>age <span class="operator">=</span> <span class="number">38</span></p>
<p></p>
</pre>

<p style="height: 0px; margin-bottom: 0px;"></p>